package com.ruoyi.mobile.project.ums.service;

import com.github.pagehelper.PageHelper;
import com.ruoyi.db.ums.domain.UmsCollect;
import com.ruoyi.db.ums.domain.query.UmsCollectQueryVo;
import com.ruoyi.db.ums.mapper.UmsCollectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class WxUmsCollectService
{
    @Autowired
    private UmsCollectMapper collectMapper;

    /**
     * 用户收藏数量
     *
     * @author 张涛
     * @param uid 用户ID
     * @param gid 商品ID
     * @return
     */
    public int count(Long uid, Long gid)
    {
        UmsCollectQueryVo umsCollectQueryVo = new UmsCollectQueryVo();
        umsCollectQueryVo.setUserId(uid);
        umsCollectQueryVo.setValueId(gid);
        return collectMapper.selectCount(umsCollectQueryVo);
    }

    /**
     *获取商品收藏列表
     *
     * @author 张涛
     * @param userId 用户ID
     * @param type   类型，如果是0则是商品收藏，如果是1则是专题收藏
     * @param page   分页页数
     * @param limit  分页大小
     * @param sort   排序字段
     * @param order  排序方式
     * @return
     */
    public List<UmsCollect> queryByType(Long userId, Integer type, Integer page, Integer limit, String sort, String order)
    {
        UmsCollectQueryVo umsCollectQueryVo = new UmsCollectQueryVo();
        umsCollectQueryVo.setUserId(userId);
        umsCollectQueryVo.setType(type);

        if (!StringUtils.isEmpty(sort) && !StringUtils.isEmpty(order)) {
            umsCollectQueryVo.setOrder(order);
            umsCollectQueryVo.setSort(sort);
        }

        PageHelper.startPage(page, limit);
        //return collectMapper.selectUmsCollectList(umsCollectQueryVo);
        return collectMapper.selectUmsCollectListofApp(umsCollectQueryVo);
    }

    /**
     * 获取商品收藏类型数量
     *
     * @author 张涛
     * @param userId  用户ID
     * @param type    类型，如果是0则是商品收藏，如果是1则是专题收藏
     * @return
     */
    public int countByType(Long userId, Byte type)
    {
        return 0;
    }

    /**
     * 获取商品收藏对象
     *
     * @author 张涛
     * @param userId
     * @param type
     * @param valueId
     * @return
     */
    public UmsCollect queryByTypeAndValue(Long userId, Integer type, Long valueId)
    {
        UmsCollectQueryVo umsCollectQueryVo = new UmsCollectQueryVo();
        umsCollectQueryVo.setUserId(userId);
        umsCollectQueryVo.setType(type);
        umsCollectQueryVo.setValueId(valueId);
        return collectMapper.selectByTypeAndValue(umsCollectQueryVo);
    }

    /**
     * 通过id删除商品收藏
     *
     * @author 张涛
     * @param id
     */
    public void deleteById(Long id)
    {
        collectMapper.deleteUmsCollectById(id);
    }

    /**
     * 添加商品收藏
     *
     * @author 张涛
     * @param collect
     * @return
     */
    public int add(UmsCollect collect)
    {
        collect.setAddTime(LocalDateTime.now());
        collect.setUpdateTime(LocalDateTime.now());
        return collectMapper.insertUmsCollect(collect);
    }

    /**
     * 选择查询
     *
     * @author 张涛
     * @param userId
     * @param valueId
     * @param page
     * @param size
     * @param sort
     * @param order
     * @return
     */
    public List<UmsCollect> querySelective(String userId, String valueId, Integer page, Integer size, String sort, String order)
    {
        return null;
    }
}
